package com.gxc.dynamic;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 某组织举行会议，来了多个代表团同时到达，接待处只有一辆汽车，可以同时接待多个代表团，为了提高车辆利用率，请帮接待员计算可以坐满车的接待方案，输出方案数量。
 *
 * 约束:
 *
 * 一个团只能上一辆车，并且代表团人数 (代表团数量小于30，每个代表团人数小于30)小于汽车容量(汽车容量小于100)
 * 需要将车辆坐满
 * 输入描述
 * 第一行 代表团人数，英文逗号隔开，代表团数量小于30，每个代表团人数小于30 第二行 汽车载客量，汽车容量小于100
 *
 * 输出描述
 * 坐满汽车的方案数量 如果无解输出0
 */
public class MaxCar {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] number = Arrays.stream(scanner.nextLine().trim().split(",")).mapToInt(Integer::parseInt).toArray();
        int capatity = scanner.nextInt();
        scanner.close();;

        int[] dp = new int[capatity+1];
        dp[0] = 1;
        for (int i = 1; i <= number.length; i++) {
            int n = number[i-1];
            for (int j = capatity; j >= n; j--) {
                dp[j] = dp[j] + dp[j-n];
            }
        }
        System.out.println(dp[capatity]);
    }
}
